package cn.tedu.util;

import java.util.ArrayList;
import java.util.List;

/**
 * 此类是分页的工具类
 * @author Administrator
 *
 */
public class PageUtil {
	/**
	 * 获取booststrap分页条中的显示的超链接
	 * @param currentPage  当前页号
	 * @param pageSize     每页记录条数
	 * @param totalCount   总记录数
	 * @param totalPage    总页数
	 * @return
	 */
	public static List<Integer> getFenYe_a_Num(
			int currentPage,
			int pageSize,
			int totalCount,
			int totalPage){
		List<Integer> aNum=new ArrayList<Integer>();
		//获取最多能有多少个超链接,最好奇数个,容易定义中间页
		int showNum_a=Integer.parseInt(new PropertyUtil("page.properties").getPropertyValue("showNum_a"));
		//一下算法,分析各种情况来获取超链接的个数
		if(totalCount/pageSize>=showNum_a) {
			//总页数大于等于showNum_a    5
			if(currentPage<showNum_a/2+1) {
				//中间位置的左边不移动
				for(int i=1;i<=showNum_a;i++) {
					aNum.add(new Integer(i));
				}
			}else if((totalPage-currentPage)<(showNum_a/2+1)) {
				//判断如果是到最后,最后的那几个数字是不能移动的
				for(int i=1;i<=showNum_a;i++) {
					aNum.add(new Integer(totalPage-showNum_a+i));
				}
			}else {
				//不是头,也不是尾
				for(int i=(currentPage-(showNum_a-(showNum_a/2+1)));i<=(currentPage+(showNum_a-(showNum_a/2+1)));i++) {
					aNum.add(new Integer(i));
				}
			}
		}else {
			//总页数不够showNum_a    5
			for(int i=1;i<=totalPage;i++) {
				aNum.add(new Integer(i));
			}
		}
		
		return aNum;
	}
}
